package 笔试.a空白.a;

import java.util.*;

import static MyUtils.MHUtils.*;

public class Main{
    static int[] p ;
    static int[] a;
    static int tS ;
    static List<List<Integer>> res = new ArrayList<>();
    static List<Integer> tmp = new ArrayList<>();
    static int min=Integer.MAX_VALUE;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] s = sc.nextLine().split(", ");
        tS= sc.nextInt();
        p = new  int[s.length];
        for (int i = 0; i < p.length; i++) {
            p[i]=Integer.parseInt(s[i]);
        }
        if(p.length==0 || p==null){
            System.out.println(-1);
            return;
        }

        int fi=0;


        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < p.length; i++) {
            list.add(p[i]);
        }
        Collections.sort(list, (a,b)->b-a);
        a=new int[p.length];
        for (int i = 0; i <p.length; i++) {
            a[i]=list.get(i);
        }
        wx(tS,fi);

        System.out.println(min==Integer.MAX_VALUE?-1:min);
    }
    private static void wx(int tS, int fi) {
        if(tS<=0){
            if(tS==0)min=Math.min(min,tmp.size());
            return;
        }

        for (int i = 0; i < a.length; i++) {
            if(fi<=i) {
                tmp.add(a[i]);
                if(tmp.size()>=min){
                    continue;
                }

                wx(tS-a[i], i);
                tmp.remove(tmp.size()-1);
            }
        }
    }

    private static void wx2(int tS, int fi) {
        can("tS:"+tS+","+"fi:"+fi);
        if(tS<=0){
//            res.add(new ArrayList<>(tmp));
            if(tS==0)min=Math.min(min,tmp.size());
            r("min:"+min);
            return;
        }

        for (int i = 0; i < a.length; i++) {
           if(fi<=i) {
               tmp.add(a[i]);
               if(tmp.size()>=min){
                   cur("con");
                   continue;
               }

               wx(tS-a[i], i);
               tmp.remove(tmp.size()-1);
           }
        }
        r(";");
    }
}
/*
1, 2, 5
11
 */